//
//  WBDateTool.m
//  WeiBoOC
//
//  Created by 韩菲菲 on 16/8/16.
//  Copyright © 2016年 韩菲菲. All rights reserved.
//

#import "WBDateTool.h"

@interface WBDateTool ()

//时间格式化设置
@property (nonatomic , strong) NSDateFormatter *formatter;

//日历类
@property (nonatomic , strong) NSCalendar *calendar;

@end

@implementation WBDateTool

#pragma mark - 单例设计
static WBDateTool* instance;
+ (instancetype)sharedDateTool
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[WBDateTool alloc] init];
    });
    
    return instance;
}

//懒加载
- (NSDateFormatter *)formatter
{
    if(!_formatter)
    {
        _formatter = [[NSDateFormatter alloc] init];
    
    }
    return _formatter;

}

- (NSCalendar *)calendar
{
    if(!_calendar)
    {
        _calendar = [NSCalendar currentCalendar];
    }
    return _calendar;

}

//时间处理
- (NSString *)handleTimeWithServerBackTimeStr:(NSString *)created_at
{
    
    //设置时间格式
    self.formatter.dateFormat = @"EEE MMM dd HH:mm:ss z yyyy";
    
    //本地化
    self.formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    
    NSDate *sinaDate = [self.formatter dateFromString:created_at];
    
    if([self isThisYearWithDate:sinaDate])
    {
        if([self.calendar isDateInToday:sinaDate])
        {
            //- 如果是今天
            //计算时间差
            int s = (int)[[NSDate date] timeIntervalSinceDate:sinaDate];
            /*
             - 如果小于60秒  显示 刚刚
             - 如果大于等于60 && 小于3600  显示 xx分钟前
             - 其他   显示  xx小时前
             */
            if(s < 60)
            {
                return @"刚刚";
            }else if (s < 3600)
            {
                return [NSString stringWithFormat:@"%d分钟前",s/60];
            }else
            {
                return [NSString stringWithFormat:@"%d小时前",s/3600];
            }
            
        }else if([self.calendar isDateInYesterday:sinaDate])
        {
            //如果是昨天
            // -  2016年08月14日 20:20:20  显示   昨天 20:20
            self.formatter.dateFormat = @"昨天 HH:mm";
            
        }else
        {
            //-  2016年06月14日 20:20:20  显示    06月14日 20:20
            self.formatter.dateFormat = @"MM月dd日 HH:ss";
            
        }
        
        
    }else{
        /*
         - 如果不是今年
         -  2014年06月14日 20:20:20  显示 2014年06月14日 20:20
         */
        self.formatter.dateFormat = @"yyyy年MM月dd日 HH:mm";
    }
    
    return [self.formatter stringFromDate:sinaDate];
}

//判断是不是今年
- (BOOL)isThisYearWithDate:(NSDate *)sinaDate
{
    self.formatter.dateFormat = @"yyyy";
    
    self.formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    
    NSString *sinaStr = [self.formatter stringFromDate:sinaDate];
    NSString *currentStr = [self.formatter stringFromDate:[NSDate date]];
    
    if([sinaStr isEqualToString:currentStr])
    {
        return YES;
    }
    return NO;
}




@end
